In a conventional data communication method and system, for data received on the receiving end, a method of correcting data errors using error correction codes, or a method of obtaining correct data by detecting data errors using error detection codes and, when an error is detected, requesting retransmission of the data to the sending end, is utilized.
More recently, a communication apparatus designed for mobile communication employs a method in which error detection codes and error correction codes are used in combination.
In this method, errors in received data are corrected by using error correction codes, and if errors that cannot be corrected by the error correction codes are detected by the error detection codes, retransmission of the data is requested and the correct data is obtained.
With this error correction method in which error detection codes and error correction codes are used in combination, when few errors occur on the transmission path, the error correction codes work effectively, while, when errors occur frequently, the error detection codes are used and errors are corrected by retransmission of the data. Hence, this method is effective for transmission paths where a rate at which error occurs fluctuates, such as in mobile communication.
FIGS. 5(a) and 5(b) show an example of an error correcting sequence for correcting errors by retransmission of data.
The sending end divides data to be transmitted into data frames and sends the data frames to the receiving end. The receiving end performs error corrections on the data frames received. If an error can be corrected by the error corrections, the receiving end sends an affirmative reply frame to the sending end, while if an error cannot be corrected, it sends a negative reply frame as a request for retransmission.
When data frames are sent normally from the sending end to the receiving end as shown in FIG. 5(a), an affirmative reply RR1 is sent from the receiving end to the sending end in response to data frame 10, and an affirmative reply RR2 is sent in response to data frame I1 and so forth.
When an error occurs in a data frame, as for example when an error occurs in the data frame I2 having the transmission sequence number 2 as shown in FIG. 5(b), which is an error that cannot be corrected on the receiving end, the frame I2 is discarded, and the data frame I3 having the transmission sequence number 3 will be input next after the data frame I1 having the transmission sequence number 1. When this happens, although affirmative replies RR1 and RR2 have been sent for the data frames I0 and I1, when the data frame I3 is received, it turns out that the data frame I2 having the transmission sequence number 2 has not arrived. As a result, a negative reply REJ2 is sent from the receiving end, and the sending end transmits I2' which is a retransmission of the data frame I2. If I2' is received normally at the receiving end, an affirmative reply RR3 is sent from the receiving end.
With the above procedure, correct data can be transmitted from the sending end to the receiving end.
However, in the error correction method which uses both the error detection codes and the error correction codes, error correction is performed by data retransmission. Therefore, data transmission delays.
For example, in the case shown in FIG. 5(b), the data frame I2 is not output until the retransmission I2' is received, so the data transmission will be delayed.
For this reason, although errors can be completely corrected in the storage type data communication in the above method, data delays result in fatal errors in the real-time type data communication where moving images or voice data are transmitted, so error correction based on retransmission cannot be used in the real-time type data transmission.
Accordingly, in real-time type data communication, error correction based on retransmission is not performed, and error correction based on error correction codes is performed.
In this case, if no processing is done by using the error detection codes, real-time type data communication can be effected using the same code configurations as with storage type data communication.
However, if real-time type data communication is conducted with the same code configurations as in the storage type data communication which employs an error correction method in which error detection codes and error correction codes are used, as described in the foregoing, no processing is performed by using the error detection codes. Therefore, problems arise in connection with the inefficiencies caused by the error detection codes themselves and by communication speeds that result from the sending of the error codes.